home *** CD-ROM | disk | FTP | other *** search
- Path: pomona.edu!JLAMPORT
- From: jlamport@pomona.edu (His Holiness the Pope)
- Newsgroups: comp.lang.c++
- Subject: Re: can you help me learn programming ?
- Date: Fri, 26 Jan 1996 08:32:53 GMT
- Organization: Pomona College
- Message-ID: <0099CF0E.4B42DDD1@pomona.edu>
- References: <sg19-2101960200070001@128.253.183.75>,<4e49fe$qks@news.iconn.net>
- Reply-To: jlamport@pomona.edu
- NNTP-Posting-Host: thumper.pomona.edu
-
- >In article <sg19-2101960200070001@128.253.183.75>, sg19@cornell.eduW says...
- >>
- >>Hi,
- >>I know nothing about computer programming but I am eager to learn.
- >>
- >>Can any kind soul suggest to me any good, comprehensive book (but for
- >>absolute beginners) to learn how to programme in Visual Basic 4.0 (to move
- >>onto Windows 95 programming) and Visual C/C ++ that include CD-Roms for
- >>online help and such?
-
- If you want to start out programming in C or C++, I have only one piece of
- advice: don't. The features of C/C++ are designed to be convenient for people
- who are already well acquainted with computer programming, and are positively
- destructive to the sanity of those who aren't.
-
- The main problem, as I see it, with learning to program in C/C++ is that the
- syntax often conflates various concepts which are _similar_ but not
- _identical_, making it extremely hard for the beginner to clearly understand
- the concepts behind the syntax. (I'm thinking in particular of the numerous and
- subtly different uses of & and *, which muddy the distinction between address,
- pointer, and reference, -- especially when passing a variable to a function --
- for example.) Fortunately, I learned C++ after having already learned a number
- of other languages -- BASIC, Logo (a remarkably elegant language considering it
- was designed for kids), Pascal, DCL, and have dabbled with assembly-language --
- so I was already familiar and comfortable with such things as pointers and
- passing a variable by value or by reference, and the difference between a
- statement and an expression and between a procedure and a function (both
- important distinctions to understand, even if C++ doesn't make them). I think
- if I had had to learn these concepts using C++ I would have been hopelessly
- confused.
-
- Personally, I would recommend Pascal as a good language to learn on: it's
- simple, elegant, and powerful. Moreover, it was originally designed as a
- teaching language, and well-designed at that, so its syntax actually represents
- the underlying concepts very well; and its somewhat more restrictive
- syntax encourages good programming style. (For example, the absense of a
- "break" statement makes you think carefully about entrance and exit conditions
- in loops and other conditionals, discouraging "spaghetti code".)
-
- And I agree with many of the other people who have responded: don't start out
- trying to program Windows apps. Start with DOS.
-
- Hope this helps.
-
- -jason
-